package com.study.spark.scala.chapter07

import scala.collection.mutable.ArrayBuffer

object Scala02_Collection{
  def main(args: Array[String]): Unit = {
    // TODO 不可变集合 - 可变数组
    // val buffer = new ArrayBuffer[String]()
    // 可以不用new 这种方式更推荐
    val buffer = ArrayBuffer("")
    println("原本可变数组："+buffer)

    // TODO 操作：追加
    buffer.append("a","b","c","d")
    println("追加后的数组："+buffer)

    buffer.append("1","2","3","4")
    println("追加后的数组："+buffer)

    buffer.appendAll(Array("e","f"))
    println("整体追加数组："+buffer)

    // TODO 操作：插入
    buffer.insert(1,"B")
    println("指定位置插入："+buffer)

    // TODO 操作：修改
    buffer.update(0,"A")
    println("修改指定元素："+buffer)
    buffer(0) = "爱"
    println("修改指定元素："+buffer)

    // TODO 操作：删除
    buffer.remove(0)
    println("删除一个指定元素："+buffer)

    buffer.remove(2,2)
    println("删除多个指定元素："+buffer)
    /*
        原本可变数组：ArrayBuffer()
        追加后的数组：ArrayBuffer(a, b, c, d)
        追加后的数组：ArrayBuffer(a, b, c, d, 1, 2, 3, 4)
        整体追加数组：ArrayBuffer(a, b, c, d, 1, 2, 3, 4, e, f)
        指定位置插入：ArrayBuffer(a, B, b, c, d, 1, 2, 3, 4, e, f)
        修改指定元素：ArrayBuffer(A, B, b, c, d, 1, 2, 3, 4, e, f)
        修改指定元素：ArrayBuffer(爱, B, b, c, d, 1, 2, 3, 4, e, f)
        删除一个指定元素：ArrayBuffer(B, b, c, d, 1, 2, 3, 4, e, f)
        删除多个指定元素：ArrayBuffer(B, b, 1, 2, 3, 4, e, f)
         */
    println("==================================")
    val strings: ArrayBuffer[String] = buffer - "1"
    println(buffer eq strings)
    println(buffer)
    println(strings)
    /*
    false
    ArrayBuffer(B, b, 1, 2, 3, 4, e, f)
    ArrayBuffer(B, b, 2, 3, 4, e, f)
     */

  }
}
